1. Field of the Invention
The present invention generally relates to a tone synthesizing method, a tone processing method, and a tone synthesizing apparatus that is suitable for use in the tone synthesis based on software.
2. Description of Related Art
Various software programs are known for tone synthesis on computer systems. In these software programs, various tone generator modules such as FM tone generator, PCM tone generator, and physical model tone generator are provided, and tones synthesized by these modules are mixed together, thereby providing a desired tone signal.
The above-mentioned tone synthesizing technology requires to set the sampling frequencies of various modules to a common level. This makes it difficult to adopt those modules (for example, the physical model tone generator) which hardly operate with sampling frequencies other than specific one. This prohibits users to use high-quality modules only because of discrepancy in sampling frequencies. Consequently, it has been difficult to acrieve high-quality tone synthesis.
Further, if CPU power runs short in software-based tone synthesis, some countermeasures must be taken, such as partially skipping the tone synthesis processing for example. However, the conventional software cannot properly determine which part of the processing is to be skipped. This may inadvertently skip an essential processing operation, thereby significantly lowering the tone quality.
Still further, the conventional software-based tone synthesis frequently executes processing in some collective units (called a frame) because it is inefficient to execute the processing on a sample by sample basis. However, in imparting two or more sound effects in this frame-based processing, an improper imparting sequence may not provide sufficient sound effects. The sequence of applying the different effects is not considered in the conventional tone synthesizing software, thereby degrading the quality of synthesized tones.
It is therefore an object of the present invention to provide a tone synthesizing method, a tone processing method, and a tone synthesizing apparatus, that synthesize quality tones based on software.
In a first aspect, an inventive method is designed for synthesizing a musical tone signal by executing a control program and a plurality of generator programs with a processor. The control program is executed to perform the steps of commanding each of the generator programs to generate a predetermined number of samples of the musical tone signal at a first sampling period, and collecting the samples from each of the generator programs and processing the collected samples at the first sampling period to thereby synthesize the musical tone signal. The generator programs include a synchronous generator program that does generate the predetermined number of the samples at the first sampling period, and an asynchronous generator program that does not generate the predetermined number of the samples at the first sampling period. The asynchronous generator program is executed to perform the steps of generating an equivalent number of samples at a second sampling period in response to the commanding from the control program, the equivalent number of the samples arranged at the second sampling period being determined to correspond to the predetermined number of the samples arranged at the first sampling period, and converting the equivalent number of the samples arranged at the second sampling period into the predetermined number of the samples arranged at the first sampling period to thereby pass the predetermined number of the samples to the control program at the first sampling period.
In a second aspect, an inventive method of synthesizing a musical tone signal comprises the steps of designating a first sampling period to determine a rate of synthesis of the musical tone signal, adopting a second samplings period from among a plurality of available sampling periods according to the designated first sampling period, generating the musical tone signal at the adopted second sampling period, converting the generated musical tone signal from the adopted second sampling period into the designated first sampling period when the second sampling period is different from the first sampling period to output the converted musical tone signal at the designated first sampling period, otherwise outputting the generated musical tone signal as it is when the adopted second sampling period is identical to the designated first sampling period., and processing the outputted musical tone signal at the designated first sampling period for the synthesis of the musical tone signal.
In a third aspect of the invention, a method of synthesizing a musical tone signal comprises the steps of commanding a generation of a predetermined number of samples of the musical tone signal at a first sampling period such that the predetermined number of the samples are sequentially arranged at the first sampling period, the generation being commanded recurrently to continue the musical tone signal, generating a practical number of samples of the musical tone signal in response to the commanding at a second sampling period which is different from the first sampling period, the practical number being determined to make efficient the generation of the musical tone signal and to cover the predetermined number of the samples, collecting a number of samples generated but unprocessed in a previous generating step and reserved in a memory, and a part of the practical number of the samples generated in the current generating step such that a total number of the collected samples is equivalent to the predetermined number of the samples, converting the collected number of the samples arranged at the second sampling period into the predetermined number of the samples arranged at the first sampling period to output the musical tone signal, and reserving the remaining part of the practical number of the samples generated but left in the current generating step into the memory for use in a next generating step.
In a fourth aspect of the invention, a method of synthesizing a musical tone signal comprises the steps of commanding a generation of a predetermined number of samples of the musical tone signal, the generation being commanded recurrently to continue the musical tone signal, generating a practical number of samples of the musical tone signal in response to the commanding, the practical number being determined to make efficient the generation of the musical tone signal and to cover the predetermined number of the samples, collecting a number of samples generated but unprocessed in a previous generating step and reserved in a memory, and a part of the practical number of the samples generated in the current generating step such that a total number of the collected samples is equivalent to the predetermined number of the samples, processing the collected number of the samples to synthesize the musical tone signal, and reserving the remaining part of the practical number of the samples generated but unprocessed in the current generating step into the memory for use in a next generating step.
In a fifth aspect, an inventive method is designed for synthesizing a musical tone signal by using a processor to sequentially execute a plurality of tone generator modules including a flexible one capable of altering a mode of generating a musical tone, and an inflexible one not capable of altering a mode of generating a musical tone. The inventive method comprises the steps of determining a sequence in the executing of the plurality of the tone generator modules such that the inflexible one precedes to the flexible one, executing the plurality of the tone generator modules in the determined sequence by the processor having a variable working load to generate the musical tones, controlling the flexible one to alter the mode of generating the musical tone dependently on the working load of the processor after the inflexible one has been executed in precedence to the flexible one, and mixing the musical tones generated from the plurality of the tone generator modules to synthesize the musical tone signal. Preferably, the inflexible one is capable of generating a fixed number of musical tones at once, and the flexible one is capable of generating a variable number of the musical tones at once such that the flexible one is controlled to alter the variable number of the musical tones dependently on the working load of the processor. Preferably, the flexible one is capable of altering a computation amount consumed to generate a musical tone, and the inflexible one is not capable of altering the computation amount such that the flexible one is controlled to alter the computation amount dependently on the working load of the processor.
In a sixth aspect, an inventive method is designed for processing a musical tone signal by sequentially executing a plurality of signal processing modules to impart corresponding effects to the musical tone signal. The inventive method comprises the steps of designating connections among the plurality of the signal processing modules, determining the sequence in the executing of the plurality of the signal processing modules according to the designated connections, generating a fragment of the musical tone signal at a predetermined interval, executing the plurality of the signal processing modules in the determined sequence at each predetermined interval to impart the corresponding effects to the fragment of the musical tone signal such that the fragment of the musical tone signal processed by a preceding signal processing module is passed to a succeeding signal processing module according to the designated connections, and mixing the fragments processed by the plurality of the signal processing modules to synthesize the musical tone signal.
In a seventh aspect, an inventive method is designed for synthesizing a musical tone signal by executing a control program and a plurality of music programs and by using a multiple of buffer memories. The control program is executed to perform the steps of commanding a sequential execution of the plurality of the music programs to sequentially process the musical tone signal, and passing the musical tone signal among the music programs by means of the buffer memories during the sequential execution of the music programs. The plurality of the music programs are executed to perform the steps of generating the musical tone signal and storing the musical tone signal in the buffer memories in response to the commanding step, processing the musical tone signal stored in the buffer memories in response to the commanding step, controlling a volume of the musical tone signal which is outputted by either of the generating step and the processing step, and accumulating the musical tone signal having the controlled volume into at least one of the buffer memories for synthesis of the musical tone signal.